package com.xdap.fsapproval.module.dto.syncApprovalInstance;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @BelongsProject：IntelliJ IDEA
 * @BelongsPackage：com.adisseo.service.approval.module.dto
 * @Author：fei
 * @CreateTime：2022-09-06 09:49
 * @Description:
 * @Version：1.0
 */
@NoArgsConstructor
@Data
public class ApprovalInstanceDto {
    /**
     * 审批定义编码
     */
    @JsonProperty("approval_code")
    @JSONField(name = "approval_code")
    private String approvalCode;

    /**
     * 审批实例状态
     */
    @JsonProperty("status")
    @JSONField(name = "status")
    private String status;

    /**
     * 审批实例id
     */
    @JsonProperty("instance_id")
    @JSONField(name = "instance_id")
    private String instanceId;

    /**
     * 审批跳转链接
     */
    @JsonProperty("links")
    @JSONField(name = "links")
    private LinksDTO links;

    /**
     * 审批标题
     */
    @JsonProperty("title")
    @JSONField(name = "title")
    private String title;

    /**
     * 审批列表卡片展示字段内容
     */
    @JsonProperty("form")
    @JSONField(name = "form")
    private List<FormDTO> form;

    /**
     * 任务列表
     */
    @JsonProperty("task_list")
    @JSONField(name = "task_list")
    private List<TaskListDTO> taskList;

    /**
     * 发起人飞书userId
     */
    @JsonProperty("user_id")
    @JSONField(name = "user_id")
    private String userId;

    /**
     * 发起人姓名
     */
    @JsonProperty("user_name")
    @JSONField(name = "user_name")
    private String userName;

    /**
     * 审批实例开始时间
     */
    @JsonProperty("start_time")
    @JSONField(name = "start_time")
    private String startTime;

    /**
     * 审批实例结束时间
     */
    @JsonProperty("end_time")
    @JSONField(name = "end_time")
    private String endTime;

    /**
     * 审批时间更新时间
     */
    @JsonProperty("update_time")
    @JSONField(name = "update_time")
    private String updateTime;

    /**
     * 跳转链接展示方式
     */
    @JsonProperty("display_method")
    @JSONField(name = "display_method")
    private  String displayMethod;

    /**
     * 更新方式：全量覆盖更新
     */
    @JsonProperty("update_mode")
    @JSONField(name = "update_mode")
    private String updateMode="REPLACE";

    /**
     * 抄送列表
     */
    @JsonProperty("cc_list")
    @JSONField(name = "cc_list")
    private List<CcNode> ccList;

    /**
     * 国际化方式
     */
    @JsonProperty("i18n_resources")
    @JSONField(name = "i18n_resources")
    private List<I18nResourcesDTO> i18nResources;

}
